package com.cloudbroker.bcs.platform.dav.bizapi.service.export;

import com.cloudbroker.bcs.common.annotation.NoLogin;
import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.PageVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.business.wechat.vo.PayForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.request.GetAccessTokenForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.request.GetTicketForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.request.GetUserInfoByAccessTokenForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.request.GetUserInfoByCodeForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.request.MassMessageForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.request.SaveLoginInformationForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.request.SendWxMessageForm;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.response.GetAccessTokenBackVo;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.response.GetHisMessageBackResult;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.response.GetTicketBackVo;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.response.GetUserInfoBackVo;
import com.cloudbroker.bcs.platform.dav.bizapi.service.export.vo.response.TongLianPayBackVo;

/**
 * Created by xuyn15828 on 2016/5/11.
 */
public interface WeixinBizService {
    /**
     * 通过code获取access_token
     */
    @NoLogin
    public GetAccessTokenBackVo getAccessTokenByCode(GetAccessTokenForm form);

    /**
     * 使用access_token获取用户信息
     */
    @NoLogin
    public GetUserInfoBackVo getUserinfoByAccessToken(GetUserInfoByAccessTokenForm form);

    /**
     * 使用code获取用户信息
     */
    @NoLogin
    public GetUserInfoBackVo getUserinfoByCode(GetUserInfoByCodeForm form);

    /**
     * 使用code和租户信息获取用户信息
     */
    @NoLogin
    public GetUserInfoBackVo getUserinfoByCodeTenant(GetUserInfoByCodeForm form);

    /**
     * 根据appid与appsecret获取获取AccessToken
     */
    @NoLogin
    public GetAccessTokenBackVo getAccessToken(GetAccessTokenForm form);


    /**
     * 获取api_ticket
     * */
    @NoLogin
    public GetTicketBackVo getTicket(GetTicketForm form);

    /**
     * 微信统一下单
     * */
    public TongLianPayBackVo unifiedorder(PayForm form);

    /**
     * 微信公众号群发消息
     * */
    public HSBCPSBackVO massMessage(MassMessageForm form);

    /**
     * 获取微信群发历史消息
     * */
    public GetHisMessageBackResult funcGetHisMessage(PageVO form);

    /**
     * 保存登录信息
     * */
    public HSBCPSBackVO funcSaveLoginInformation(SaveLoginInformationForm form);

    /**
     * 微信发送消息
     * */
    @NoLogin
    public HSBCPSBackVO funcSendWxMessage(SendWxMessageForm form);
}
